// 首先先引入aixos
import axios from 'axios'
// element引入文件
import { ElMessage } from 'element-plus'
// 这是我放基准地址的文件
import env from './env'
import router from "@/router";
// 创建一个axios 实例
const api = axios.create({
    baseURL: env.gateway.baseURL, // 基准地址 localhost:8091
    timeout: 5000 // 超时时间
})
// // 请求拦截
// api.interceptors.request.use((config) => {
//
//    if(localStorage.getItem("token")){
//        console.log(localStorage.getItem("token"))
//        config.headers['Authorization'] = 'Bearer ' + localStorage.getItem("token")
//
//    }
//     return config      // 请求拦截里面的需求可以自己写，有的项目需要配置很多，有的很少，这里就
//                        // 不放了
// }, error => {
//     Promise.reject(error)
// })
// 响应拦截
/**
 响应拦截也是一样，最基本的可以把返回出来的一些数据做简单处理，
 比如把请求回来的提示信息解构出来，给予提示，这样就不用在每次请求完成后单独去写
 这里用的是element-ui 里面的提示
 **/
api.interceptors.response.use((response) => {

    if(response.data.code === 401 || response.data.code === 403 || localStorage.getItem("user") == null){
        console.log("请登录!")
        //ElMessage.error("请先登录!")
        router.push("/login")
    }
    if(response.data.code === 2000){
        // ElMessage.success(response.data.msg)
    }else{
        ElMessage.error(response.data.msg)
    }
    // // 如果后端拦截器返回了 20101 的状态码，那就刷新token
    // if(res.data.code===20101){
    //     let rftoken = res.headers.get("refresh_token");
    //     if(rftoken){
    //         localStorage.setItem("token",rftoken);
    //     }
    // }

    return response
}, error => {
    Promise.reject(error)
})
// 最后导出
export default api
